API Authentication (Token, OAuth)

Web Development - জ্যাঙ্গো (Django) - Django API ডেভেলপমেন্ট (Django REST Framework)
272

API authentication হল একটি গুরুত্বপূর্ণ বিষয় যখন আপনি Django তে API তৈরি করেন এবং সেগুলিকে নিরাপদ করতে চান। API এর মাধ্যমে ব্যবহারকারীরা বিভিন্ন ধরনের ডাটা অ্যাক্সেস করতে পারে, সুতরাং যথাযথ authentication ব্যবস্থা থাকা জরুরি। Django তে API authentication এর জন্য বেশ কিছু পদ্ধতি রয়েছে, যার মধ্যে সবচেয়ে জনপ্রিয় দুটি হল Token Authentication এবং OAuth Authentication


১. Token Authentication

Token Authentication একটি সাধারণ এবং নিরাপদ পদ্ধতি যেখানে একটি ব্যবহারকারী লগইন করার পরে তাকে একটি ইউনিক টোকেন প্রদান করা হয়। এই টোকেনটি ব্যবহারকারীর পরিচয় যাচাই করার জন্য পরবর্তী রিকোয়েস্টে পাঠানো হয়। Django তে Token Authentication সেটআপ করতে Django REST Framework (DRF) ব্যবহার করা হয়।

Token Authentication এর মাধ্যমে API Authentication সেটআপ

  1. Django REST Framework ইনস্টল করা

প্রথমে আপনাকে Django REST Framework এবং djangorestframework-simplejwt প্যাকেজ ইনস্টল করতে হবে। এই প্যাকেজটি JWT (JSON Web Token) সাপোর্ট প্রদান করে।

pip install djangorestframework djangorestframework-simplejwt
  1. INSTALLED_APPS এ REST Framework যুক্ত করা

settings.py ফাইলে INSTALLED_APPS এ Django REST Framework যুক্ত করতে হবে।

# settings.py

INSTALLED_APPS = [
    # অন্যান্য অ্যাপস
    'rest_framework',
    'rest_framework.authtoken',  # Token Authentication এর জন্য
]
  1. Token Authentication মডিউল কনফিগার করা

এখন আপনাকে TokenAuthentication সেটআপ করতে হবে। settings.py ফাইলে DRF এর ডিফল্ট কনফিগারেশন সেট করুন।

# settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}
  1. Token মডেল তৈরি এবং মাইগ্রেশন

এখন আপনাকে Token মডেল তৈরি এবং মাইগ্রেট করতে হবে।

python manage.py migrate
  1. Token তৈরি করা

ব্যবহারকারী যদি লগইন করে, তবে আপনি তাকে একটি Token প্রদান করবেন। Django REST Framework এ obtain_auth_token ভিউ দিয়ে এটি করা যায়।

urls.py তে URL কনফিগার করুন:

# urls.py

from django.urls import path
from rest_framework.authtoken.views import obtain_auth_token

urlpatterns = [
    path('api-token-auth/', obtain_auth_token),  # Token authentication endpoint
]

এখন, ব্যবহারকারী যখন POST /api-token-auth/ এ তার ইউজারনেম এবং পাসওয়ার্ড পাঠাবে, তখন তাকে একটি টোকেন দেওয়া হবে যা পরবর্তী API রিকোয়েস্টে ব্যবহার করা যাবে।


২. OAuth Authentication

OAuth হল একটি প্রোটোকল যা ইউজারের অথেনটিকেশন এবং অথোরাইজেশন পরিচালনা করার জন্য ব্যবহার করা হয়। এটি ইউজারের লগইন ডেটা সরাসরি শেয়ার না করে, সেকেন্ড পার্টি অ্যাপ্লিকেশনকে ইউজারের ডেটা অ্যাক্সেস করার অনুমতি দেয়। Django তে OAuth ব্যবহার করতে আপনি django-oauth-toolkit প্যাকেজ ব্যবহার করতে পারেন।

OAuth Authentication এর মাধ্যমে API Authentication সেটআপ

  1. django-oauth-toolkit ইনস্টল করা

প্রথমে আপনাকে django-oauth-toolkit প্যাকেজ ইনস্টল করতে হবে।

pip install django-oauth-toolkit
  1. INSTALLED_APPS এ oauth2_provider যুক্ত করা

এটি settings.py তে INSTALLED_APPS এ যোগ করুন।

# settings.py

INSTALLED_APPS = [
    # অন্যান্য অ্যাপস
    'oauth2_provider',
]
  1. URLs কনফিগারেশন

OAuth রাউটগুলো urls.py ফাইলে যুক্ত করতে হবে।

# urls.py

from django.urls import path, include

urlpatterns = [
    path('auth/', include('oauth2_provider.urls', namespace='oauth2_provider')),
    # অন্যান্য API রাউট
]
  1. OAuth Application তৈরি করা

এখন আপনি OAuth2 Application তৈরি করবেন। এটি তৈরি করতে Django অ্যাডমিন প্যানেল ব্যবহার করতে পারেন।

  • Django অ্যাডমিনে লগইন করুন এবং OAuth2 Provider সেকশনে যান।
  • একটি নতুন Application তৈরি করুন। এখানে আপনি client id এবং client secret পাবেন, যা আপনাকে OAuth প্রক্রিয়ায় ব্যবহার করতে হবে।
  1. OAuth Authentication কনফিগারেশন

Django REST Framework তে OAuth ব্যবহার করার জন্য, আপনাকে DEFAULT_AUTHENTICATION_CLASSES এ OAuth authentication ক্লাস যোগ করতে হবে।

# settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
    ],
}

এখন OAuth এর মাধ্যমে API Authentication সম্পন্ন হবে। আপনি টোকেন ব্যবহারকারীকে পাঠিয়ে তার অনুমোদন পেতে পারেন।


৩. Token এবং OAuth এর মধ্যে পার্থক্য

ফিচারToken AuthenticationOAuth Authentication
অথেনটিকেশন টাইপস্ট্যাটিক টোকেন ব্যবহার করেDynamic authorization (third-party)
ব্যবহারAPI এর মধ্যে একক ইউজারের অথেনটিকেশনতৃতীয় পক্ষের অ্যাপ্লিকেশন দ্বারা ইউজারের ডেটা অ্যাক্সেস
সিকিউরিটিসিম্পল, তবে সিকিউরিটি রিস্ক থাকতে পারেঅধিক সিকিউর, কারণ ইউজারের পাসওয়ার্ড শেয়ার হয় না
ইউজার ইন্টারঅ্যাকশনইউজারকে প্রতিবার টোকেন পাঠাতে হয়একবার অথোরাইজেশন, তারপর অ্যাক্সেস টোকেন ব্যবহার

সারাংশ

  • Token Authentication API এর জন্য একটি সহজ পদ্ধতি, যেখানে ব্যবহারকারী লগইন করার পরে একটি টোকেন পায় এবং এটি API রিকোয়েস্টের সঙ্গে পাঠানো হয়।
  • OAuth Authentication একটি শক্তিশালী অথেনটিকেশন প্রোটোকল, যা ইউজারের ডেটা এক্সেসের জন্য অনুমতি প্রদান করে, তাতে ইউজারের পাসওয়ার্ড শেয়ার করা হয় না।
  • Django তে উভয় পদ্ধতিই ব্যবহার করা সম্ভব এবং আপনার প্রোজেক্টের প্রয়োজন অনুযায়ী যেকোনো একটি পদ্ধতি বেছে নিতে পারেন।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...